This invention relates to data processing systems.
More specifically, the invention is concerned with a multi-processor data processing system of the kind in which the workload of the system is divided into packets, each packet specifying a function and one or more arguments to which the function is to be applied. One system of this kind is described, for example, in "Flagship Computational Models and Machine Architecture", I. Watson et al, and "Flagship Hardware and Implementation", P. Townsend, both in the ICL Technical Journal Vol 5, Issue 3, May 1987, published by the Oxford University Press, England.
In such a system, it is desirable that, when a function packet is processed, all its arguments should be available in the local store of the processing node in which the function packet resides. If some of the argument packets are resident in other nodes, then it is necessary to create local copies of those packets in the local store.
The above articles mention the need for a local copying mechanism, and suggest the use of a hashing mechanism for accessing the local copies. However, it has been found that a simple hashing mechanism is unsatisfactory. In particular, it can cause problems where two or more arguments of a particular function packet have the same hash address, which means that it is not possible for both arguments to be accessed simultaneously by the hashing mechanism, and a deadlock results. Moreover, the use of a simple hashing mechanism creates problems in sharing argument packets, and also with garbage collection of copies that are no longer required.
The object of the present invention is to provide an improved mechanism for handling local copies of argument packets which alleviates these problems.